package com.sinog.front.feign.basic;

import com.sinog.core.utilbean.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @desc 系统管理 - 资源管理 - 资源管理 - ResourceService - feign
 * @author zy
 * @date 2019年7月1日 12点54分
 */
@FeignClient("sinog2c-basic")
public interface ResourceService {

    /**
     * 系统管理 - 资源管理 - 资源管理 - 获取资源类型
     * @return Result
     */
    @GetMapping("/api/sinog2c-basic/resource/type")
    Result selectResourceType();

    /**
     * 系统管理 - 资源管理 - 资源管理 - 保存资源信息信息
     * @param resource resource
     * @return Result
     */
    @PostMapping("/api/sinog2c-basic/resource")
    Result save(@RequestParam("resource") String resource);

    /**
     * 系统管理 - 资源管理 - 资源管理 - 批量删除资源信息信息
     * @param ids ids
     * @return Result
     */
    @DeleteMapping("/api/sinog2c-basic/resource")
    Result deleteBatch(@RequestBody String[] ids);

    /**
     * 系统管理 - 资源管理 - 资源管理 - 根据ID查询单个资源信息
     * @param id id
     * @return Result
     */
    @GetMapping("/api/sinog2c-basic/resource/{id}")
    Result selectOne(@PathVariable("id") String id);

    /**
     * 系统管理 - 资源管理 - 资源管理 - 加载资源管理模块的资源树
     * @param reskey reskey
     * @return Result
     */
    @GetMapping("/api/sinog2c-basic/resources/{reskey}")
    Result selectResourceAsTree(@PathVariable("reskey") String reskey);

    /**
     * 系统管理 - 资源管理 - 资源管理 - 复制自己的资源到某一个资源菜单下
     * @param src src
     * @param dest dest
     * @return Result
     */
    @PostMapping("/api/sinog2c-basic/resource/copy")
    Result copyResources(@RequestParam("src") Long src,@RequestParam("dest") Long dest);

    /**
     * 系统管理 - 资源管理 - 资源管理 - 加载首页导航栏菜单
     * @param account account
     * @return Result
     */
    @GetMapping("/api/sinog2c-basic/resource/menu")
    Result selectResouceMenu(@RequestParam("account") String account);
}